/**
 * Ant Design 组件主题配置统一导出
 * 
 * 基于企业级设计规范 (DSL) 的完整主题配置集合
 * 所有配置均可通过 ConfigProvider 应用到应用中
 */

// ========== 导入所有组件的主题配置 ==========

import { affixThemeConfig } from './affix';
import { alertThemeConfig } from './alert';
import { anchorThemeConfig } from './anchor';
import { appThemeConfig } from './app';
import { avatarThemeConfig } from './avatar';
import { backTopThemeConfig } from './backtop';
import { badgeThemeConfig } from './badge';
import { breadcrumbThemeConfig } from './breadcrumb';
import { buttonThemeConfig } from './button';
import { calendarThemeConfig } from './calendar';
import { cardThemeConfig } from './card';
import { carouselThemeConfig } from './carousel';
import { cascaderThemeConfig } from './cascader';
import { checkboxThemeConfig } from './checkbox';
import { colThemeConfig } from './col';
import { collapseThemeConfig } from './collapse';
import { colorPickerThemeConfig } from './colorpicker';
import { configProviderThemeConfig } from './configprovider';
import { datePickerThemeConfig } from './datepicker';
import { descriptionsThemeConfig } from './descriptions';
import { dividerThemeConfig } from './divider';
import { drawerThemeConfig } from './drawer';
import { dropdownThemeConfig } from './dropdown';
import { emptyThemeConfig } from './empty';
import { flexThemeConfig } from './flex';
import { floatButtonThemeConfig } from './floatbutton';
import { formThemeConfig } from './form';
import { gridThemeConfig } from './grid';
import { imageThemeConfig } from './image';
import { inputThemeConfig } from './input';
import { inputNumberThemeConfig } from './inputnumber';
import { layoutThemeConfig } from './layout';
import { listThemeConfig } from './list';
import { mentionsThemeConfig } from './mentions';
import { menuThemeConfig } from './menu';
import { messageThemeConfig } from './message';
import { modalThemeConfig } from './modal';
import { notificationThemeConfig } from './notification';
import { paginationThemeConfig } from './pagination';
import { popconfirmThemeConfig } from './popconfirm';
import { popoverThemeConfig } from './popover';
import { progressThemeConfig } from './progress';
import { qrCodeThemeConfig } from './qrcode';
import { radioThemeConfig } from './radio';
import { rateThemeConfig } from './rate';
import { resultThemeConfig } from './result';
import { rowThemeConfig } from './row';
import { segmentedThemeConfig } from './segmented';
import { selectThemeConfig } from './select';
import { skeletonThemeConfig } from './skeleton';
import { sliderThemeConfig } from './slider';
import { spaceThemeConfig } from './space';
import { spinThemeConfig } from './spin';
import { splitterThemeConfig } from './splitter';
import { statisticThemeConfig } from './statistic';
import { stepsThemeConfig } from './steps';
import { switchThemeConfig } from './switch';
import { tableThemeConfig } from './table';
import { tabsThemeConfig } from './tabs';
import { tagThemeConfig } from './tag';
import { timelineThemeConfig } from './timeline';
import { tooltipThemeConfig } from './tooltip';
import { tourThemeConfig } from './tour';
import { transferThemeConfig } from './transfer';
import { treeThemeConfig } from './tree';
import { treeSelectThemeConfig } from './treeselect';
import { typographyThemeConfig } from './typography';
import { uploadThemeConfig } from './upload';
import { watermarkThemeConfig } from './watermark';

// ========== 完整主题配置 ==========

/**
 * 完整的企业级主题配置
 * 包含所有已配置组件的主题（69个组件）
 * 
 * @example
 * ```tsx
 * import { ConfigProvider } from 'antd';
 * import { completeThemeConfig } from 'your-company-ui/themes';
 * 
 * <ConfigProvider theme={{ components: completeThemeConfig }}>
 *   <App />
 * </ConfigProvider>
 * ```
 */
export const completeThemeConfig = {
  Affix: affixThemeConfig,
  Alert: alertThemeConfig,
  Anchor: anchorThemeConfig,
  App: appThemeConfig,
  Avatar: avatarThemeConfig,
  BackTop: backTopThemeConfig,
  Badge: badgeThemeConfig,
  Breadcrumb: breadcrumbThemeConfig,
  Button: buttonThemeConfig,
  Calendar: calendarThemeConfig,
  Card: cardThemeConfig,
  Carousel: carouselThemeConfig,
  Cascader: cascaderThemeConfig,
  Checkbox: checkboxThemeConfig,
  Col: colThemeConfig,
  Collapse: collapseThemeConfig,
  ColorPicker: colorPickerThemeConfig,
  ConfigProvider: configProviderThemeConfig,
  DatePicker: datePickerThemeConfig,
  Descriptions: descriptionsThemeConfig,
  Divider: dividerThemeConfig,
  Drawer: drawerThemeConfig,
  Dropdown: dropdownThemeConfig,
  Empty: emptyThemeConfig,
  Flex: flexThemeConfig,
  FloatButton: floatButtonThemeConfig,
  Form: formThemeConfig,
  Grid: gridThemeConfig,
  Image: imageThemeConfig,
  Input: inputThemeConfig,
  InputNumber: inputNumberThemeConfig,
  Layout: layoutThemeConfig,
  List: listThemeConfig,
  Mentions: mentionsThemeConfig,
  Menu: menuThemeConfig,
  Message: messageThemeConfig,
  Modal: modalThemeConfig,
  Notification: notificationThemeConfig,
  Pagination: paginationThemeConfig,
  Popconfirm: popconfirmThemeConfig,
  Popover: popoverThemeConfig,
  Progress: progressThemeConfig,
  QRCode: qrCodeThemeConfig,
  Radio: radioThemeConfig,
  Rate: rateThemeConfig,
  Result: resultThemeConfig,
  Row: rowThemeConfig,
  Segmented: segmentedThemeConfig,
  Select: selectThemeConfig,
  Skeleton: skeletonThemeConfig,
  Slider: sliderThemeConfig,
  Space: spaceThemeConfig,
  Spin: spinThemeConfig,
  Splitter: splitterThemeConfig,
  Statistic: statisticThemeConfig,
  Steps: stepsThemeConfig,
  Switch: switchThemeConfig,
  Table: tableThemeConfig,
  Tabs: tabsThemeConfig,
  Tag: tagThemeConfig,
  Timeline: timelineThemeConfig,
  Tooltip: tooltipThemeConfig,
  Tour: tourThemeConfig,
  Transfer: transferThemeConfig,
  Tree: treeThemeConfig,
  TreeSelect: treeSelectThemeConfig,
  Typography: typographyThemeConfig,
  Upload: uploadThemeConfig,
  Watermark: watermarkThemeConfig,
} as const;

/**
 * 完整主题配置的类型
 */
export type CompleteThemeConfig = typeof completeThemeConfig;

// ========== 导出所有组件的主题配置和工具函数 ==========

export { affixThemeConfig, getAffixTheme, type AffixComponentToken } from './affix';
export { alertThemeConfig, getAlertTheme, type AlertComponentToken } from './alert';
export { anchorThemeConfig, getAnchorTheme, type AnchorComponentToken } from './anchor';
export { appThemeConfig, getAppTheme, type AppComponentToken } from './app';
export { avatarThemeConfig, getAvatarTheme, type AvatarComponentToken } from './avatar';
export { backTopThemeConfig, getBackTopTheme, type BackTopComponentToken } from './backtop';
export { badgeThemeConfig, getBadgeTheme, type BadgeComponentToken } from './badge';
export { breadcrumbThemeConfig, getBreadcrumbTheme, type BreadcrumbComponentToken } from './breadcrumb';
export { buttonThemeConfig, getButtonTheme, type ButtonComponentToken, type ExtendedButtonToken } from './button';
export { calendarThemeConfig, getCalendarTheme, type CalendarComponentToken } from './calendar';
export { cardThemeConfig, getCardTheme, type CardComponentToken } from './card';
export { carouselThemeConfig, getCarouselTheme, type CarouselComponentToken } from './carousel';
export { cascaderThemeConfig, getCascaderTheme, type CascaderComponentToken } from './cascader';
export { checkboxThemeConfig, getCheckboxTheme, type CheckboxComponentToken } from './checkbox';
export { colThemeConfig, getColTheme, type ColComponentToken } from './col';
export { collapseThemeConfig, getCollapseTheme, type CollapseComponentToken } from './collapse';
export { colorPickerThemeConfig, getColorPickerTheme, type ColorPickerComponentToken } from './colorpicker';
export { configProviderThemeConfig, getConfigProviderTheme, type ConfigProviderComponentToken } from './configprovider';
export { datePickerThemeConfig, getDatePickerTheme, type DatePickerComponentToken } from './datepicker';
export { descriptionsThemeConfig, getDescriptionsTheme, type DescriptionsComponentToken } from './descriptions';
export { dividerThemeConfig, getDividerTheme, type DividerComponentToken } from './divider';
export { drawerThemeConfig, getDrawerTheme, type DrawerComponentToken } from './drawer';
export { dropdownThemeConfig, getDropdownTheme, type DropdownComponentToken } from './dropdown';
export { emptyThemeConfig, getEmptyTheme, type EmptyComponentToken } from './empty';
export { flexThemeConfig, getFlexTheme, type FlexComponentToken } from './flex';
export { floatButtonThemeConfig, getFloatButtonTheme, type FloatButtonComponentToken } from './floatbutton';
export { formThemeConfig, getFormTheme, type FormComponentToken } from './form';
export { gridThemeConfig, getGridTheme, type GridComponentToken } from './grid';
export { imageThemeConfig, getImageTheme, type ImageComponentToken } from './image';
export { inputThemeConfig, getInputTheme, type InputComponentToken } from './input';
export { inputNumberThemeConfig, getInputNumberTheme, type InputNumberComponentToken } from './inputnumber';
export { layoutThemeConfig, getLayoutTheme, type LayoutComponentToken } from './layout';
export { listThemeConfig, getListTheme, type ListComponentToken } from './list';
export { mentionsThemeConfig, getMentionsTheme, type MentionsComponentToken } from './mentions';
export { menuThemeConfig, getMenuTheme, type MenuComponentToken } from './menu';
export { messageThemeConfig, getMessageTheme, type MessageComponentToken } from './message';
export { modalThemeConfig, getModalTheme, type ModalComponentToken } from './modal';
export { notificationThemeConfig, getNotificationTheme, type NotificationComponentToken } from './notification';
export { paginationThemeConfig, getPaginationTheme, type PaginationComponentToken } from './pagination';
export { popconfirmThemeConfig, getPopconfirmTheme, type PopconfirmComponentToken } from './popconfirm';
export { popoverThemeConfig, getPopoverTheme, type PopoverComponentToken } from './popover';
export { progressThemeConfig, getProgressTheme, type ProgressComponentToken } from './progress';
export { qrCodeThemeConfig, getQRCodeTheme, type QRCodeComponentToken } from './qrcode';
export { radioThemeConfig, getRadioTheme, type RadioComponentToken } from './radio';
export { rateThemeConfig, getRateTheme, type RateComponentToken } from './rate';
export { resultThemeConfig, getResultTheme, type ResultComponentToken } from './result';
export { rowThemeConfig, getRowTheme, type RowComponentToken } from './row';
export { segmentedThemeConfig, getSegmentedTheme, type SegmentedComponentToken } from './segmented';
export { selectThemeConfig, getSelectTheme, type SelectComponentToken } from './select';
export { skeletonThemeConfig, getSkeletonTheme, type SkeletonComponentToken } from './skeleton';
export { sliderThemeConfig, getSliderTheme, type SliderComponentToken } from './slider';
export { spaceThemeConfig, getSpaceTheme, type SpaceComponentToken } from './space';
export { spinThemeConfig, getSpinTheme, type SpinComponentToken } from './spin';
export { splitterThemeConfig, getSplitterTheme, type SplitterComponentToken } from './splitter';
export { statisticThemeConfig, getStatisticTheme, type StatisticComponentToken } from './statistic';
export { stepsThemeConfig, getStepsTheme, type StepsComponentToken } from './steps';
export { switchThemeConfig, getSwitchTheme, type SwitchComponentToken } from './switch';
export { tableThemeConfig, getTableTheme, type TableComponentToken } from './table';
export { tabsThemeConfig, getTabsTheme, type TabsComponentToken } from './tabs';
export { tagThemeConfig, getTagTheme, type TagComponentToken } from './tag';
export { timelineThemeConfig, getTimelineTheme, type TimelineComponentToken } from './timeline';
export { tooltipThemeConfig, getTooltipTheme, type TooltipComponentToken } from './tooltip';
export { tourThemeConfig, getTourTheme, type TourComponentToken } from './tour';
export { transferThemeConfig, getTransferTheme, type TransferComponentToken } from './transfer';
export { treeThemeConfig, getTreeTheme, type TreeComponentToken } from './tree';
export { treeSelectThemeConfig, getTreeSelectTheme, type TreeSelectComponentToken } from './treeselect';
export { typographyThemeConfig, getTypographyTheme, type TypographyComponentToken } from './typography';
export { uploadThemeConfig, getUploadTheme, type UploadComponentToken } from './upload';
export { watermarkThemeConfig, getWatermarkTheme} from './watermark';
